/**
 * 数据分析工具
 */
import segment from "./lib/common/segment/segment";

function getDatasFromObjectsByKey(objs, key) {
  let datas = [];
  for (let i = 0; i < objs.length; i++) {
    let obj = objs[i];
    datas.push(obj[key]);
  }
  return datas;
}
export default {
  _this: this,
  /**
   * 热力图数据格式化
   */
  heatDataFormat: {},
  /**
   * 分段专题图数据处理
   */
  themerange: {
    /**
     * 根据数据对象获取分段数目
     * @param {Array} datas 数据对象[{"value":""},{"value":""}]
     * @param {Number} num
     */
    getSegmentByDataArr(datas, num) {
      let dataArr = getDatasFromObjectsByKey(datas, "value");
      return segment.segmentUtil(dataArr, num, "KMEANS");
    }
  },
  common: {
    /**
     * 获取一组数据的最大最小值
     * @param {Array} datas 数据数组
     */
    getMaxMinData(datas) {
      return {
        maxData: Math.max.apply(Math, datas) || 0,
        minData: Math.min.apply(Math, datas) || 0
      };
    },
    /**
     * 从一个对象数组中获取数据
     * @param {Array} Objects 对象数组
     * @param {String} key 键
     */
    getDatasFromObjectsByKey(objs, key) {
      let datas = [];
      for (let i = 0; i < objs.length; i++) {
        let obj = objs[i];
        datas.push(obj[key]);
      }
      return datas;
    }
  }
};
